home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / c64-preservation-project / educational / intro_to_basic_part_2[commodore_1983].nbz / solar (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  2.8 KB  |  74 lines

  1. 10 REM SOLAR
  2. 20 E=380  :L=27:REM SET NUMBER OF ORBITAL POINTS
  3. 30 ER=90:LR=25 :REM SET ORBIT SIZES OF EARTH AND MOON
  4. 40 DIM P2(E),Q2(E),P3(L),Q3(L)
  5. 50 PRINT"[147]CALCULATING ORBITS   PLEASE WAIT"
  6. 60 PRINT:PRINT"      ABOUT 45 SECONDS !"
  7. 240 REM SET UP SPRITE DEFINITIONS
  8. 250 FORJ=0TO6*64-1
  9. 260 READ X:POKE 58368+J,X
  10. 270 NEXT J
  11. 290 V=208*256
  12. 300 POKE V+32,0:POKE V+33,0 :REM SET SCREEN BLACK
  13. 320 FOR J=57344 TO 58343:POKE J, 0:NEXT J:REM CLEAR NEW SCREEN MAP
  14. 325 FOR J=0 TO 5:POKE58360+J,144+J:NEXT J:REM SET SPRITE POINTERS
  15. 400 POKE V+41,7:POKE V+42,7:POKE V+43,7:POKE V+44,7 :REM SET SUN YELLOW
  16. 410 POKE V+40,5:POKE V+39,6:REM SET EARTH GREEN AND MOON BLUE
  17. 420 POKE V+4,160:POKE V+5,130:REM POKE COORDINATES OF SUN (4 QUADRANTS)
  18. 430 POKE V+6,184:POKE V+7,130
  19. 440 POKE V+8 ,160:POKE V+9 ,149
  20. 450 POKE V+10,184:POKEV+11,149
  21. 460 PRINT"[147]"
  22. 470 REM CALCULATE ORBITS
  23. 520 S=2*(null)/E: REM NEXT EARTH
  24. 530 FOR J=1 TO E
  25. 540 P2(J)=INT(1.2*ER*SIN(S*J)+184):Q2(J)=INT(ER*COS(S*J)+149)
  26. 550 NEXT J
  27. 560 S=2*(null)/L: REM NEXT THE MOON
  28. 570 FOR J=1 TO L
  29. 580 P3(J)=INT(1.2*LR*SIN(S*J)):Q3(J)=INT(LR*COS(S*J))
  30. 590 NEXT J
  31. 680 POKEV+24,136 :REM MOVE SCREEN AND CHARACTER TABLE
  32. 690 POKE 56578,PEEK(56578)OR3:POKE 56576,PEEK(56576) AND 252 :REM SELECT BANK 3
  33. 700 EM=1:LM=1
  34. 705 POKE V+21,63 :REM ENABLE SPRITES
  35. 710 FOR Q=1 TO 100000
  36. 740 POKEV+2,P2(EM) AND 255:POKE V+3,Q2(EM)
  37. 741 POKE V+16,(PEEK(V+16)AND253)+INT(P2(EM)/256)*2
  38. 745 PP=P2(EM)+P3(LM):QQ=Q2(EM)+Q3(LM)
  39. 750 POKEV+0,PP AND 255:POKE V+1,QQ AND 255
  40. 751 POKE V+16,(PEEK(V+16)AND254)+INT(PP/256)
  41. 760 EM=EM+1:IFEM>ETHEN EM=1
  42. 770 LM=LM+1:IF LM>L THEN LM=1
  43. 800 NEXT Q
  44. 1400 REM SPRITE DEFINITIONS
  45. 1450 REM MIDDLE-SIZED PLANET
  46. 1460 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  47. 1470 DATA0,124,0,1,255,0,3,255,128,3,255,128,7,255,192,7,255,192,3,255,128
  48. 1480 DATA1,255,0,0,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  49. 1500 REM BIG PLANET
  50. 1510 DATA0,0,0,0,24,0,1,255,128,7,255,224,31,255,248,63,255,252
  51. 1520 DATA127,255,254,127,255,254,255,255,255,255,255,255,255,255,255,255,255,255
  52. 1530 DATA127,255,254,127,255,254,63,255,252,31,255,248,7,255,224,1,255,128
  53. 1540 DATA0,24,0,0,0,0,0,0,0,0
  54. 1550 REM SUN (1ST QUADRANT)
  55. 1560 DATA0,0,3,0,0,127,0,3,255,0,31,255,0,127,255,1,255,255,3,255,255,7,255,255
  56. 1570 DATA15,255,255,31,255,255,31,255,255,63,255,255,63,255,255,127,255,255
  57. 1580 DATA127,255,255,255,255,255,255,255,255,255,255,255,255,255,255
  58. 1590 DATA0,0,0,0,0,0,0
  59. 1600 REM SUN (2ND QUADRANT)
  60. 1610 DATA192,0,0,254,0,0,255,192,0,255,248,0,255,254,0,255,255,128,255,255,192
  61. 1620 DATA255,255,224,255,255,240,255,255,248,255,255,248,255,255,252,255,255,252
  62. 1630 DATA255,255,254,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255
  63. 1640 DATA0,0,0,0,0,0,0
  64. 1650 REM SUN (3RD QUADRANT)
  65. 1660 DATA255,255,255,255,255,255,255,255,255,255,255,255
  66. 1670 DATA127,255,255,127,255,255,63,255,255,63,255,255,31,255,255,31,255,255
  67. 1680 DATA15,255,255,7,255,255,3,255,255,1,255,255,0,127,255,0,31,255,0,3,255
  68. 1690 DATA0,0,127,0,0,3,0,0,0,0,0,0,0
  69. 1700 REM SUN (4TH QUADRANT)
  70. 1710 DATA255,255,255,255,255,255,255,255,255,255,255,255
  71. 1720 DATA255,255,254,255,255,254,255,255,252,255,255,252,255,255,248,255,255,248
  72. 1730 DATA255,255,240,255,255,224,255,255,192,255,255,128,255,254,0,255,248,0
  73. 1740 DATA255,192,0,254,0,0,192,0,0,0,0,0,0,0,0,0
  74.